$(function () {
    //读取cookie
    if ($.cookie("djsendtime") != undefined && !isNaN($.cookie("djsendtime"))) {    //读取到了cookie值
        var djsendtime = $.cookie("djsendtime");                                    // 倒计时结束时间
        var now = new Date().getTime();                                             // 当前时间
        var locksecends = parseInt((djsendtime - now) / 1000);
        if (locksecends <= 0) {
            $.cookie("djsendtime", null);               // 说明倒计时已经结束了 ，清除cookie中保存的结束时间
            // 显示考试时间到提示框
            $("#timeOut").show();
        } else {
            LockButton('#Time', locksecends);           //  否则就将这个差值作为倒计时开始的数字
        }
    }

})

/**
 * 倒计时
 * @param {*} btnObjId      播放倒计时时间的节点
 * @param {*} locksecends   倒计时时间
 */
var LockButton = function (btnObjId, locksecends) {
    //1.获取当前系统时间
    //2.获取 locksecends 后的系统时间
    //3.用cookie保存到期时间
    //4.每次加载后获取cookie中保存的时间
    //5.用到期时间减去当前时间获取倒计时
    var djsendtime = $.cookie("djsendtime");  // 获取倒计时结束时间
    if (djsendtime == null || djsendtime == undefined || djsendtime == 'undefined' || djsendtime == 'null') {
        var now = new Date().getTime();              //当前时间
        var endtime = locksecends * 1000 + now;      //倒计时结束时间
        $.cookie("djsendtime", endtime);             //将倒计时结束时间保存到cookie
    }

    let strTimer = "";
    strTimer = secondToDate(locksecends);
    $(btnObjId).addClass('disabled').attr('disabled', 'disabled').text(strTimer);
    $('body').off('click', '#btnSendSMS');
    var timer = setInterval(function () {
        locksecends--;
        strTimer = secondToDate(locksecends);
        $(btnObjId).text(strTimer);
        
        if (locksecends <= 0) {

            //倒计时结束清除cookie值
            $.cookie("djsendtime", null);
            $(btnObjId).text("考试结束");
            // 显示考试时间到提示框
            $("#timeOut").show();

            $('body').on('click', btnObjId);
            clearInterval(timer);
            
        }
        
        
    }, 1000);
};

/**
 * 根据总秒数，转换为时分秒展示
 * @param {*} result 
 * @returns 
 */
function secondToDate(result) {
    var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
    var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
    var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
    if (h == 0) {
        result = m + "分" + s+"秒";
    } else {
        result = h + '时' + m + "分" + s+"秒"
    }
    return result;
}

